
var http = require("http");
var url = require("url");
var path = require("path");
var fsp = require("fs/promises");

var { createServer } = http;

var db = path.join(__dirname, "./data");

var server = createServer(function (req, res) {

    if (req.url != "/favicon.ico") {

        var urlDetail = url.parse(req.url, true);
        var { pathname, query } = urlDetail;
        console.log("请求相关信息", pathname, query);

        res.statusCode = 200;
        res.setHeader("Content-Type", "text/json;charset=utf-8");

        /* 
           /  根路由
           /grade  一级路由
           /grade/add  二级路由
           /grade/del
           /grade/search
           /grade/edit

        
        
        */

        if (pathname == "/grade") { // 获取所有成绩
            fsp.readFile(path.join(db, "./grade.json"), "utf-8").then((list) => { // 读取文件时返回的就是文本(json字符串)
                res.end(list);
            }).catch(err => {
                res.end(JSON.stringify(err))
            })
        } else if (pathname == "/grade/searchGradeById") { // 对应id获取成绩 (需要接收id属性)
            // query.id  取id的值
            if (Object.keys(query).includes("id")) {  // 是否存在属性名为"id"
                fsp.readFile(path.join(db, "./grade.json"), "utf-8").then((list) => { // 读取文件时返回的就是文本(json字符串)
                    list = JSON.parse(list); //将json字符串解析为json对象(对象/数组)

                    var result = list.find(v => v.id == query.id);

                    // if (result) {
                    //     res.end(JSON.stringify(result))
                    // } else {
                    //     res.end("数据不存在")
                    // }

                    if (result) {
                        var obj = {
                            code: 200,  // 自定义属性表示查询的结果  (200  404  500)
                            message: "OK",
                            data: result,
                        }
                        res.end(JSON.stringify(obj))
                    } else {

                        var obj = {
                            code: 404,  // 自定义属性表示查询的结果  (200  404  500)
                            message: "Not Found",
                        }
                        res.end(JSON.stringify(obj))
                    }

                }).catch(err => {
                    res.end(JSON.stringify(err))
                })
            } else {
                var obj = {
                    code: 100,
                    message: "请传入完整参数",
                }
                res.end(JSON.stringify(obj))
            }

        } else {
            res.end();
        }



    } else {
        res.end();
    }
});


server.listen(80, () => {
    console.log("服务器已经启动: http://localhost");
})
